package patternsource;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

public class HardcodedPatternSource implements IPatternSource {
	private List<Pattern> patterns;

	public List<Pattern> getPatterns() {
		if (patterns == null) {
			patterns = new ArrayList<Pattern>();
			initPatterns();
		}
		return patterns;
	}

	private void initPatterns() {
		patterns.add(Pattern.compile("(Производитель)\\s+(\\w*)"));
		patterns.add(Pattern
				.compile("(Диагональ\\s+экрана,\\s*дюймов)\\s*(\\d{2}(,\\d)?)"));
		patterns.add(Pattern
				.compile("(Разрешение\\s+экрана)\\s*(\\d{3,4}x\\d{3,4}\\s*)"));
		patterns.add(Pattern.compile("(Тип\\s+процессора)\\s*((\\w-?\\s*)+)"));
		patterns.add(Pattern
				.compile("(Предустановленная\\s+ОС)\\s*((\\w\\s*)+)"));
		patterns.add(Pattern
				.compile("(Объем\\s+оперативной\\s+памяти\\s*\\(стандарт/максимум\\))\\s*(\\d{3,4}(/\\d{3,4})?)"));
		patterns.add(Pattern.compile("(Жесткий\\s+диск,\\s*GB)\\s*(\\d+)"));
		patterns.add(Pattern.compile("(Оптический\\s+привод)\\s*((\\pL|\\w)+)"));
		patterns.add(Pattern
				.compile("(Графический\\s+адаптер,\\s*объем\\s+памяти)\\s*((\\w\\s*\\d*)+)"));
		patterns.add(Pattern.compile("(Bluetooth)\\s*((\\d.\\d|\\pL)+)"));
	}
}
